package com.fengze.business.mapper;

import java.util.List;
import com.fengze.business.domain.FileInfo;
import org.apache.ibatis.annotations.Param;

/**
 * 上传文件信息Mapper接口
 * 
 * @author lug
 * @date 2024-02-18
 */
public interface FileInfoMapper 
{
    /**
     * 查询上传文件信息
     * 
     * @param id 上传文件信息主键
     * @return 上传文件信息
     */
    public FileInfo selectFileInfoById(Long id);

    /**
     * 查询上传文件信息列表
     * 
     * @param fileInfo 上传文件信息
     * @return 上传文件信息集合
     */
    public List<FileInfo> selectFileInfoList(FileInfo fileInfo);

    /**
     * 新增上传文件信息
     * 
     * @param fileInfo 上传文件信息
     * @return 结果
     */
    public int insertFileInfo(FileInfo fileInfo);

    /**
     * 修改上传文件信息
     * 
     * @param fileInfo 上传文件信息
     * @return 结果
     */
    public int updateFileInfo(FileInfo fileInfo);

    /**
     * 删除上传文件信息
     * 
     * @param id 上传文件信息主键
     * @return 结果
     */
    public int deleteFileInfoById(Long id);

    /**
     * 批量删除上传文件信息
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteFileInfoByIds(Long[] ids);

    List<FileInfo> selectListByBusiIdAndType(@Param("busiId") Long busiId,@Param("busiType") String busiType);

    int deleteByBusiIdsAndType(@Param("busiIds") Long[] busiIds,@Param("busiType")  String busiType);

    void updateStatusByIdStr(@Param("idStr") String idStr,@Param("status") int status);

    /**
     * 逻辑删除信息
     * @param busiId
     * @param type
     * @param status
     * @return
     */
    int deleteLogicalByBusiIdAndType(@Param("busiId")Long busiId,@Param("type") String type,@Param("status") int status);

    /**
     * 逻辑删除信息
     * @param busiIds
     * @param type
     * @param status
     * @return
     */
    int deleteLogicalByBusiIdListAndType(@Param("busiIds")Long[] busiIds, @Param("type")String type, @Param("status")int status);
}
